
(function (mui, shiquan) {
	shiquan.serverUrl = "http://zysc2018.top:8098";
	/*
	 * 压缩文件
	 */
	shiquan.compressImage = function(src, dst, callback) {
		callback = callback || $.noop;
		plus.zip.compressImage({
				src: src,
				dst: dstname,
				overwrite: true,
				quality: 50
			},
			function(event) {
				callback({
					state: 1,
					file: event.target
				});
			},
			function(error) {
				callback({
					state: -1,
					error: error
				});
			});
	}
	/*
	 * 拍照获取图片
	 */
	shiquan.getCamera = function(callback) {
		callback = callback || $.noop;
		var camera = plus.camera.getCamera();
		camera.captureImage(function(e) {
			plus.io.resolveLocalFileSystemURL(e, function(entry) {
				callback({
					state: 1,
					message: "拍照成功",
					entry: entry
				});
			}, function(e) {
				plus.nativeUI.alert("读取拍照文件错误：" + e.message);
				callback({
					state: -1,
					mesage: e.message
				});
			});
		}, function(s) {
			plus.nativeUI.alert("拍照异常：" + s);
			callback({
				state: -1,
				mesage: s
			});
		}, {
			filename: "_doc/camera/"
		});
	}
	/*
	 * 选取图片
	 */
	shiquan.galleryImg = function(callback) {
		callback = callback || $.noop;
		plus.gallery.pick(function(file) {
			callback({
				state: 1,
				message: "选取图片",
				file: file
			});
		}, function(e) {
			callback({
				state: -1,
				message: "取消选择"
			});
		}, {
			filter: "image"
		});
	}
	/*
	 * 选取图片
	 */
	shiquan.galleryImgs = function(callback) {
		callback = callback || $.noop;
		plus.gallery.pick(function(e) {
			callback({
				state: 1,
				files: e.files
			});
		}, function(e) {
			callback({
				state: -1,
				mesage: "取消选择"
			});
		}, {
			filter: "image",
			multiple: true
		});
	}
	/*
	 * 选择日期
	 */
	shiquan.datePicker = function(el,options,callback){
		callback = callback || $.noop;
		var _self = el;
		if(_self.picker) {
			_self.picker.show(function (rs) {
				//result.innerText = '选择结果: ' + rs.text;
				callback(rs);
				_self.picker.dispose();
				_self.picker = null;
			});
		} else {
			/*
			var optionsJson = el.getAttribute('data-options') || '{}';
			var options = JSON.parse(optionsJson);
			var id = el.getAttribute('id');
			*/
			options = options || {type:"date",beginYear:2010,endYear:2099};
			/*
			 * 首次显示时实例化组件
			 * 示例为了简洁，将 options 放在了按钮的 dom 上
			 * 也可以直接通过代码声明 optinos 用于实例化 DtPicker
			 */
			_self.picker = new mui.DtPicker(options);
			_self.picker.show(function(rs) {
				/*
				 * rs.value 拼合后的 value
				 * rs.text 拼合后的 text
				 * rs.y 年，可以通过 rs.y.vaue 和 rs.y.text 获取值和文本
				 * rs.m 月，用法同年
				 * rs.d 日，用法同年
				 * rs.h 时，用法同年
				 * rs.i 分（minutes 的第二个字母），用法同年
				 */
				//result.innerText = '选择结果: ' + rs.text;
				callback(rs);
				/*
				 * 返回 false 可以阻止选择框的关闭
				 * return false;
				 */
				/*
				 * 释放组件资源，释放后将将不能再操作组件
				 * 通常情况下，不需要示放组件，new DtPicker(options) 后，可以一直使用。
				 * 当前示例，因为内容较多，如不进行资原释放，在某些设备上会较慢。
				 * 所以每次用完便立即调用 dispose 进行释放，下次用时再创建新实例。
				 */
				_self.picker.dispose();
				_self.picker = null;
			});
		}
	}
	//---------------------------------------------------
	// 日期格式化
	// 格式 YYYY/yyyy/YY/yy 表示年份
	// MM/M 月份
	// W/w 星期
	// dd/DD/d/D 日期
	// hh/HH/h/H 时间
	// mm/m 分钟
	// ss/SS/s/S 秒
	//---------------------------------------------------
	shiquan.dateFormat = function(dateVal, fmt) {
		var dataObj;
		if(dateVal instanceof Date) {
			dataObj = dateVal;
		} else {
			dataObj = new Date(dateVal);
		}
		var o = {
			"M+": dataObj.getMonth() + 1, //月份
			"d+": dataObj.getDate(), //日
			"h+": dataObj.getHours() % 12 == 0 ? 12 : dataObj.getHours() % 12, //小时
			"H+": dataObj.getHours(), //小时
			"m+": dataObj.getMinutes(), //分
			"s+": dataObj.getSeconds(), //秒
			"q+": Math.floor((dataObj.getMonth() + 3) / 3), //季度
			"S": dataObj.getMilliseconds() //毫秒
		};
		var week = {
			"0": "/u65e5",
			"1": "/u4e00",
			"2": "/u4e8c",
			"3": "/u4e09",
			"4": "/u56db",
			"5": "/u4e94",
			"6": "/u516d"
		};

		fmt = fmt || "yyyy-MM-dd";
		if(/(y+)/.test(fmt) && fmt!=undefined) {
			fmt = fmt.replace(RegExp.$1, (dataObj.getFullYear() + "").substr(4 - RegExp.$1.length));
		}

		if(/(E+)/.test(fmt) && fmt!=undefined) {
			fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? "/u661f/u671f" : "/u5468") : "") + week[dataObj.getDay() + ""]);
		}
		for(var k in o) {
			if(new RegExp("(" + k + ")").test(fmt)) {
				fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
			}
		}
		return fmt;
	};
	
	/**
	 * 格式化时间的辅助类，将一个时间转换成x小时前、y天前等
	 */
	shiquan.dateUtils = {
		UNITS: {
			'年': 31557600000,
			'月': 2629800000,
			'天': 86400000,
			'小时': 3600000,
			'分钟': 60000,
			'秒': 1000
		},
		humanize: function(milliseconds) {
			var humanize = '';
			mui.each(this.UNITS, function(unit, value) {
				if(milliseconds >= value) {
					humanize = Math.floor(milliseconds / value) + unit + '前';
					return false;
				}
				return true;
			});
			return humanize || '刚刚';
		},
		format: function(dateStr) {
			var date = this.parse(dateStr)
			var diff = Date.now() - date.getTime();
			if(diff < this.UNITS['天']) {
				return this.humanize(diff);
			}
			
			var _format = function(number) {
				return(number < 10 ? ('0' + number) : number);
			};
			return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDay()) + '-' + _format(date.getHours()) + ':' + _format(date.getMinutes());
		},
		parse:function (str) {//将"yyyy-mm-dd HH:MM:ss"格式的字符串，转化为一个Date对象
			var a = str.split(/[^0-9]/);
			return new Date (a[0],a[1]-1,a[2],a[3],a[4],a[5] );
		}
	};
}(mui, window.shiquan = {}));
